]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
app-system: Don't assume that gmenu_tree_load_sync() sets error
authorFlorian Müllner <fmuellner@gnome.org>
Mon, 20 Feb 2012 07:33:49 +0000 (08:33 +0100)
committerFlorian Müllner <fmuellner@gnome.org>
Mon, 20 Feb 2012 10:41:57 +0000 (11:41 +0100)
The function may return FALSE without setting the GError, so don't
assume it is set to prevent a crash in that case. While at it, free
the GError we were leaking before.

https://bugzilla.gnome.org/show_bug.cgi?id=670418

src/shell-app-system.c

index f6c8c0114e34770ff90388ff89bf393c04b1a048..a80b23398145bb38c816cbb3bc164ae8341c300a 100644 (file)
@@ -320,7 +320,15 @@ on_apps_tree_changed_cb (GMenuTree *tree,
 
   if (!gmenu_tree_load_sync (self->priv->apps_tree, &error))
     {
-      g_warning ("Failed to load apps: %s", error->message);
+      if (error)
+        {
+          g_warning ("Failed to load apps: %s", error->message);
+          g_error_free (error);
+        }
+      else
+        {
+          g_warning ("Failed to load apps");
+        }
       return;
     }
 
@@ -411,7 +419,15 @@ on_settings_tree_changed_cb (GMenuTree *tree,
   g_hash_table_remove_all (self->priv->setting_id_to_app);
   if (!gmenu_tree_load_sync (self->priv->settings_tree, &error))
     {
-      g_warning ("Failed to load settings: %s", error->message);
+      if (error)
+        {
+          g_warning ("Failed to load apps: %s", error->message);
+          g_error_free (error);
+        }
+      else
+        {
+          g_warning ("Failed to load apps");
+        }
       return;
     }